// const fetch = require("node-fetch");
import fetch from 'node-fetch';

function getData () {
  // return fetch('http://study.jsplusplus.com/xiaomi/getXiaomiDatas?phone=true')
  // .then(res => {
  //   return res.json();
  // })
  // .then(res => {
  //   return res;
  // })
  // .catch(err => {
  //   return err;
  // })

  return new Promise((resolve, reject) => {
    reject('失败了');
  })
}

// getData().then(res => {
//   console.log(res);
// })

async function logData() {
  console.log(111);
  // const data = await getData();
  // console.log(data);

  // 结构清晰，不是链式
  // const p1 = await getData0();
  // const p2 = await getData0(p1);
  // const p3 = await getData0(p2);
  // const p4 = await getData0(p3);
  // const p5 = await getData0(p4);
}
logData();

console.log('Global');

/**
 * async await
 * 
 * async 的意思是当前这个异步函数与同一作用域下的程序是异步关系
 * 
 * await 是一个操作符
 * 等待一个Promise对象产出结果的手段 -> Promise { <pending> }
 * 功能是暂停async函数的执行 等待 Promise 处理后的结果
 * 假如Promise 处理的结果是 rejected，会抛出异常
 * 
 * 捕获异常可以使用 try catch
 */
